The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Today's Internet has evolved into a ubiquitous network that has compelled many businesses to rely upon it as a major resource for doing business. For example, many businesses may employ services on the Internet to perform backup of their various aspects of their local computing resources, including providing for high availability of backed up data.
In response to the need to provide for a networking infrastructure with both high availability of data and recover from disasters, cluster architectures were developed. Briefly, a cluster architecture can be defined as multiple loosely coupled network devices that cooperate to provide client devices access to one or more services over the network.
However, some cluster architectures that are employed for data backup may spread different portions of data across a large number of members within the cluster to minimize the likelihood of loss of large amounts of data should one of the members fail. However, when loss of even a portion of the data may be significant to the clients depending upon the cluster, this may not be a tolerable result. Therefore, It is with respect to these considerations and others that the present invention has been made.
The performance and capabilities of computing devices have increased dramatically since their introduction. However, computing devices of all types remain susceptible to device failures, whether from malfunctioning device hardware or from external conditions such as a loss of electrical power. For businesses and users that rely on computing devices, such failures can result in highly undesirable downtime and possible data loss.
For some computing environments, a cluster architecture may be configured to mitigate some of the problems caused by device failures. In general, a cluster consists of multiple computing devices that may be connected by a network and that operate in a coordinated fashion to provide access to data and/or one or more computing services. In order to provide for high data availability and the ability to recover from disasters, a cluster architecture may be configured to replicate data stored by the cluster across multiple components of the cluster. In this manner, if one or more of the cluster components fails, data stored by the failed components may be made available through one or more of the other components storing a replicated copy of the data.
Some cluster architectures that are employed for data backup may spread different portions of data across a large number of components within the cluster to minimize the likelihood of losing large amounts of data should one or more of the components fail. However, when loss of even a portion of the data may be significant, this may not be a tolerable result.